package com.bestcem.xm.user.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.user.service.dto.organization.OrganizationWalletConfigDTO;

import java.util.List;

/**
 * 公司钱包配置service
 *
 * @author wangyunyun <yunyun.wang@idiaoyan.com>
 * @version v1.0
 * @date 2022/5/13 10:34
 */
public interface OrganizationWalletConfigService {

    /**
     * 创建公司钱包配置
     *
     * @param organizationWalletConfigDTO 公司钱包配置
     * @return ServiceResult<String>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/5/13 11:40
     */
    ServiceResult<String> insert(OrganizationWalletConfigDTO organizationWalletConfigDTO);

    /**
     * 根据公司id更新公司钱包配置
     *
     * @param organizationWalletConfigDTO 公司钱包配置
     * @return ServiceResult<Integer>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/5/13 11:50
     */
    ServiceResult<Integer> updateByOrgId(OrganizationWalletConfigDTO organizationWalletConfigDTO);

    /**
     * 根据条件更新公司钱包配置
     *
     * @param param     更新参数
     * @param condition 更新条件参数
     * @return ServiceResult<Integer>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/5/13 11:55
     */
    ServiceResult<Integer> updateByCondition(OrganizationWalletConfigDTO param, OrganizationWalletConfigDTO condition);

    /**
     * 根据公司id查询公司钱包配置
     *
     * @param orgId 公司id
     * @return ServiceResult<OrganizationWalletConfigDTO>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/5/13 11:09
     */
    ServiceResult<OrganizationWalletConfigDTO> getByOrgId(String orgId);

    /**
     * 批量查询公司钱包配置
     *
     * @param orgIds 公司id列表
     * @return ServiceResult<List < OrganizationWalletConfigDTO>>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/5/18 17:02
     */
    ServiceResult<List<OrganizationWalletConfigDTO>> listByOrgIds(List<String> orgIds);

    /**
     * 根据条件查询公司钱包配置
     *
     * @param organizationWalletConfigDTO 公司钱包配置
     * @return ServiceResult<List < OrganizationWalletConfigDTO>>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/5/13 11:10
     */
    ServiceResult<List<OrganizationWalletConfigDTO>> findByCondition(OrganizationWalletConfigDTO organizationWalletConfigDTO);

    /**
     * 批量插入公司企业钱包配置
     *
     * @param walletConfigDTOList
     * @return ServiceResult<String>
     * @author wangyunyun <yunyun.wang@idiaoyan.com>
     * @date 2022/7/13 11:01
     */
    ServiceResult<Void> insertBatch(List<OrganizationWalletConfigDTO> walletConfigDTOList);
}
